package org.huang.util;

import java.io.Serializable;

/**
 * @author hdu_huang
 * @since 2024/1/4 17:38
 * Record类  默认final类, 字段也是final是不变类    Java 16正式发布，Record类可以看作是Record类的实现类。
 * Record类   允许实例方法和static方法   构造方法(紧凑型, 规范型, 定制型)  允许局部和嵌套
 */
public record User(int id, int age, String name) implements Serializable {

    public User {
        if (age < 0) {
            throw new IllegalArgumentException("年龄不能小于0");
        }
    }

    public User(int age, String name) {
        this(0, age, name);
    }

    @Override
    public int age() {
        return age + 1;
    }

    public String say() {
        return age + " : " + name;
    }

}
